{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Practical Data Analysis with Pandas"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Hi Guys, Welcome to [Tirendaz Academy](https://youtube.com/c/tirendazacademy) 😀\n",
    "</br>\n",
    "In this notebook, I'm going to talk about practical data analysis with Pandas.\n",
    "</br>\n",
    "Happy learning 🐱‍🏍 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you want, you can download the data set from https://openpolicing.stanford.edu/data/. You can also get information about the data set from this site. Let's import the data set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df=pd.read_csv(\n",
    "    \"Data/ca_san_diego_2019_02_25.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>raw_row_number</th>\n",
       "      <th>date</th>\n",
       "      <th>time</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_age</th>\n",
       "      <th>subject_race</th>\n",
       "      <th>subject_sex</th>\n",
       "      <th>type</th>\n",
       "      <th>arrest_made</th>\n",
       "      <th>citation_issued</th>\n",
       "      <th>warning_issued</th>\n",
       "      <th>outcome</th>\n",
       "      <th>contraband_found</th>\n",
       "      <th>search_conducted</th>\n",
       "      <th>search_person</th>\n",
       "      <th>search_vehicle</th>\n",
       "      <th>search_basis</th>\n",
       "      <th>reason_for_search</th>\n",
       "      <th>reason_for_stop</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>01:25:00</td>\n",
       "      <td>110</td>\n",
       "      <td>24.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>05:47:00</td>\n",
       "      <td>320</td>\n",
       "      <td>42.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>warning</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>07:46:00</td>\n",
       "      <td>320</td>\n",
       "      <td>29.0</td>\n",
       "      <td>asian/pacific islander</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>warning</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:10:00</td>\n",
       "      <td>610</td>\n",
       "      <td>23.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:35:00</td>\n",
       "      <td>930</td>\n",
       "      <td>35.0</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Equipment Violation</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   raw_row_number        date      time service_area  subject_age  \\\n",
       "0               1  2014-01-01  01:25:00          110         24.0   \n",
       "1               2  2014-01-01  05:47:00          320         42.0   \n",
       "2               3  2014-01-01  07:46:00          320         29.0   \n",
       "3               4  2014-01-01  08:10:00          610         23.0   \n",
       "4               5  2014-01-01  08:35:00          930         35.0   \n",
       "\n",
       "             subject_race subject_sex       type arrest_made citation_issued  \\\n",
       "0                   white        male  vehicular       False            True   \n",
       "1                   white        male  vehicular       False           False   \n",
       "2  asian/pacific islander        male  vehicular       False           False   \n",
       "3                   white        male  vehicular       False            True   \n",
       "4                hispanic        male  vehicular       False            True   \n",
       "\n",
       "  warning_issued   outcome contraband_found search_conducted search_person  \\\n",
       "0          False  citation              NaN            False           NaN   \n",
       "1           True   warning              NaN            False           NaN   \n",
       "2           True   warning              NaN            False           NaN   \n",
       "3          False  citation              NaN            False           NaN   \n",
       "4          False  citation              NaN            False           NaN   \n",
       "\n",
       "  search_vehicle search_basis reason_for_search      reason_for_stop  \n",
       "0            NaN          NaN               NaN     Moving Violation  \n",
       "1            NaN          NaN               NaN     Moving Violation  \n",
       "2            NaN          NaN               NaN     Moving Violation  \n",
       "3            NaN          NaN               NaN     Moving Violation  \n",
       "4            NaN          NaN               NaN  Equipment Violation  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>raw_row_number</th>\n",
       "      <th>date</th>\n",
       "      <th>time</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_age</th>\n",
       "      <th>subject_race</th>\n",
       "      <th>subject_sex</th>\n",
       "      <th>type</th>\n",
       "      <th>arrest_made</th>\n",
       "      <th>citation_issued</th>\n",
       "      <th>warning_issued</th>\n",
       "      <th>outcome</th>\n",
       "      <th>contraband_found</th>\n",
       "      <th>search_conducted</th>\n",
       "      <th>search_person</th>\n",
       "      <th>search_vehicle</th>\n",
       "      <th>search_basis</th>\n",
       "      <th>reason_for_search</th>\n",
       "      <th>reason_for_stop</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>390996</th>\n",
       "      <td>390997</td>\n",
       "      <td>2017-03-31</td>\n",
       "      <td>23:49:00</td>\n",
       "      <td>620</td>\n",
       "      <td>23.0</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Radio Call/Citizen Contact</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>390997</th>\n",
       "      <td>390998</td>\n",
       "      <td>2017-03-31</td>\n",
       "      <td>23:55:00</td>\n",
       "      <td>710</td>\n",
       "      <td>NaN</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>NaN</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>390998</th>\n",
       "      <td>390999</td>\n",
       "      <td>2017-03-31</td>\n",
       "      <td>23:58:00</td>\n",
       "      <td>310</td>\n",
       "      <td>26.0</td>\n",
       "      <td>white</td>\n",
       "      <td>female</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>warning</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Equipment Violation</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        raw_row_number        date      time service_area  subject_age  \\\n",
       "390996          390997  2017-03-31  23:49:00          620         23.0   \n",
       "390997          390998  2017-03-31  23:55:00          710          NaN   \n",
       "390998          390999  2017-03-31  23:58:00          310         26.0   \n",
       "\n",
       "       subject_race subject_sex       type arrest_made citation_issued  \\\n",
       "390996     hispanic        male  vehicular       False           False   \n",
       "390997     hispanic        male  vehicular         NaN            True   \n",
       "390998        white      female  vehicular         NaN           False   \n",
       "\n",
       "       warning_issued   outcome contraband_found search_conducted  \\\n",
       "390996          False       NaN              NaN            False   \n",
       "390997          False  citation              NaN              NaN   \n",
       "390998           True   warning              NaN              NaN   \n",
       "\n",
       "       search_person search_vehicle search_basis reason_for_search  \\\n",
       "390996           NaN            NaN          NaN               NaN   \n",
       "390997           NaN            NaN          NaN               NaN   \n",
       "390998           NaN            NaN          NaN               NaN   \n",
       "\n",
       "                   reason_for_stop  \n",
       "390996  Radio Call/Citizen Contact  \n",
       "390997            Moving Violation  \n",
       "390998         Equipment Violation  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.tail(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(390999, 19)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "raw_row_number         int64\n",
       "date                  object\n",
       "time                  object\n",
       "service_area          object\n",
       "subject_age          float64\n",
       "subject_race          object\n",
       "subject_sex           object\n",
       "type                  object\n",
       "arrest_made           object\n",
       "citation_issued       object\n",
       "warning_issued        object\n",
       "outcome               object\n",
       "contraband_found      object\n",
       "search_conducted      object\n",
       "search_person         object\n",
       "search_vehicle        object\n",
       "search_basis          object\n",
       "reason_for_search     object\n",
       "reason_for_stop       object\n",
       "dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "raw_row_number            0\n",
       "date                    132\n",
       "time                   1256\n",
       "service_area              0\n",
       "subject_age           12644\n",
       "subject_race           1398\n",
       "subject_sex             806\n",
       "type                      0\n",
       "arrest_made           35022\n",
       "citation_issued       32712\n",
       "warning_issued        32712\n",
       "outcome               40047\n",
       "contraband_found     379835\n",
       "search_conducted      37096\n",
       "search_person        376459\n",
       "search_vehicle       376459\n",
       "search_basis         374173\n",
       "reason_for_search    376343\n",
       "reason_for_stop         266\n",
       "dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    2014-01-01\n",
       "1    2014-01-01\n",
       "2    2014-01-01\n",
       "3    2014-01-01\n",
       "4    2014-01-01\n",
       "Name: date, dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.date.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['raw_row_number', 'date', 'time', 'service_area', 'subject_age',\n",
       "       'subject_race', 'subject_sex', 'type', 'arrest_made', 'citation_issued',\n",
       "       'warning_issued', 'outcome', 'contraband_found', 'search_conducted',\n",
       "       'search_person', 'search_vehicle', 'search_basis', 'reason_for_search',\n",
       "       'reason_for_stop'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    01:25:00\n",
       "1    05:47:00\n",
       "2    07:46:00\n",
       "3    08:10:00\n",
       "4    08:35:00\n",
       "Name: time, dtype: object"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"time\"].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>01:25:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>05:47:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>07:46:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:10:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:35:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         date      time\n",
       "0  2014-01-01  01:25:00\n",
       "1  2014-01-01  05:47:00\n",
       "2  2014-01-01  07:46:00\n",
       "3  2014-01-01  08:10:00\n",
       "4  2014-01-01  08:35:00"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[[\"date\",\"time\"]].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>raw_row_number</th>\n",
       "      <th>DATE</th>\n",
       "      <th>TIME</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_age</th>\n",
       "      <th>subject_race</th>\n",
       "      <th>subject_sex</th>\n",
       "      <th>type</th>\n",
       "      <th>arrest_made</th>\n",
       "      <th>citation_issued</th>\n",
       "      <th>warning_issued</th>\n",
       "      <th>outcome</th>\n",
       "      <th>contraband_found</th>\n",
       "      <th>search_conducted</th>\n",
       "      <th>search_person</th>\n",
       "      <th>search_vehicle</th>\n",
       "      <th>search_basis</th>\n",
       "      <th>reason_for_search</th>\n",
       "      <th>reason_for_stop</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>01:25:00</td>\n",
       "      <td>110</td>\n",
       "      <td>24.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>05:47:00</td>\n",
       "      <td>320</td>\n",
       "      <td>42.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>warning</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>07:46:00</td>\n",
       "      <td>320</td>\n",
       "      <td>29.0</td>\n",
       "      <td>asian/pacific islander</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>warning</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:10:00</td>\n",
       "      <td>610</td>\n",
       "      <td>23.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:35:00</td>\n",
       "      <td>930</td>\n",
       "      <td>35.0</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Equipment Violation</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   raw_row_number        DATE      TIME service_area  subject_age  \\\n",
       "0               1  2014-01-01  01:25:00          110         24.0   \n",
       "1               2  2014-01-01  05:47:00          320         42.0   \n",
       "2               3  2014-01-01  07:46:00          320         29.0   \n",
       "3               4  2014-01-01  08:10:00          610         23.0   \n",
       "4               5  2014-01-01  08:35:00          930         35.0   \n",
       "\n",
       "             subject_race subject_sex       type arrest_made citation_issued  \\\n",
       "0                   white        male  vehicular       False            True   \n",
       "1                   white        male  vehicular       False           False   \n",
       "2  asian/pacific islander        male  vehicular       False           False   \n",
       "3                   white        male  vehicular       False            True   \n",
       "4                hispanic        male  vehicular       False            True   \n",
       "\n",
       "  warning_issued   outcome contraband_found search_conducted search_person  \\\n",
       "0          False  citation              NaN            False           NaN   \n",
       "1           True   warning              NaN            False           NaN   \n",
       "2           True   warning              NaN            False           NaN   \n",
       "3          False  citation              NaN            False           NaN   \n",
       "4          False  citation              NaN            False           NaN   \n",
       "\n",
       "  search_vehicle search_basis reason_for_search      reason_for_stop  \n",
       "0            NaN          NaN               NaN     Moving Violation  \n",
       "1            NaN          NaN               NaN     Moving Violation  \n",
       "2            NaN          NaN               NaN     Moving Violation  \n",
       "3            NaN          NaN               NaN     Moving Violation  \n",
       "4            NaN          NaN               NaN  Equipment Violation  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.rename(columns={\"date\":\"DATE\",\n",
    "                   \"time\":\"TIME\"},\n",
    "          inplace=True)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "raw_row_number             1\n",
       "DATE              2014-01-01\n",
       "TIME                01:25:00\n",
       "service_area             110\n",
       "subject_age               24\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2014-01-01'"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DATE            2014-01-01\n",
       "service_area           110\n",
       "subject_race         white\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0,[1,3,5]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>DATE</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_race</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>110</td>\n",
       "      <td>white</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>320</td>\n",
       "      <td>white</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>320</td>\n",
       "      <td>asian/pacific islander</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>610</td>\n",
       "      <td>white</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>930</td>\n",
       "      <td>hispanic</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         DATE service_area            subject_race\n",
       "0  2014-01-01          110                   white\n",
       "1  2014-01-01          320                   white\n",
       "2  2014-01-01          320  asian/pacific islander\n",
       "3  2014-01-01          610                   white\n",
       "4  2014-01-01          930                hispanic"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0:5,[1,3,5]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>raw_row_number</th>\n",
       "      <th>DATE</th>\n",
       "      <th>TIME</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>01:25:00</td>\n",
       "      <td>110</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>05:47:00</td>\n",
       "      <td>320</td>\n",
       "      <td>42.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>07:46:00</td>\n",
       "      <td>320</td>\n",
       "      <td>29.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:10:00</td>\n",
       "      <td>610</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:35:00</td>\n",
       "      <td>930</td>\n",
       "      <td>35.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   raw_row_number        DATE      TIME service_area  subject_age\n",
       "0               1  2014-01-01  01:25:00          110         24.0\n",
       "1               2  2014-01-01  05:47:00          320         42.0\n",
       "2               3  2014-01-01  07:46:00          320         29.0\n",
       "3               4  2014-01-01  08:10:00          610         23.0\n",
       "4               5  2014-01-01  08:35:00          930         35.0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0:5,0:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>TIME</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_age</th>\n",
       "      <th>subject_race</th>\n",
       "      <th>subject_sex</th>\n",
       "      <th>type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>05:47:00</td>\n",
       "      <td>320</td>\n",
       "      <td>42.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>07:46:00</td>\n",
       "      <td>320</td>\n",
       "      <td>29.0</td>\n",
       "      <td>asian/pacific islander</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>08:10:00</td>\n",
       "      <td>610</td>\n",
       "      <td>23.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>08:35:00</td>\n",
       "      <td>930</td>\n",
       "      <td>35.0</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>08:39:00</td>\n",
       "      <td>820</td>\n",
       "      <td>30.0</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       TIME service_area  subject_age            subject_race subject_sex  \\\n",
       "1  05:47:00          320         42.0                   white        male   \n",
       "2  07:46:00          320         29.0  asian/pacific islander        male   \n",
       "3  08:10:00          610         23.0                   white        male   \n",
       "4  08:35:00          930         35.0                hispanic        male   \n",
       "5  08:39:00          820         30.0                hispanic        male   \n",
       "\n",
       "        type  \n",
       "1  vehicular  \n",
       "2  vehicular  \n",
       "3  vehicular  \n",
       "4  vehicular  \n",
       "5  vehicular  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[1:5,\"TIME\":\"type\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>DATE</th>\n",
       "      <th>TIME</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_age</th>\n",
       "      <th>subject_race</th>\n",
       "      <th>subject_sex</th>\n",
       "      <th>type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>01:25:00</td>\n",
       "      <td>110</td>\n",
       "      <td>24.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>05:47:00</td>\n",
       "      <td>320</td>\n",
       "      <td>42.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>07:46:00</td>\n",
       "      <td>320</td>\n",
       "      <td>29.0</td>\n",
       "      <td>asian/pacific islander</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:10:00</td>\n",
       "      <td>610</td>\n",
       "      <td>23.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:35:00</td>\n",
       "      <td>930</td>\n",
       "      <td>35.0</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         DATE      TIME service_area  subject_age            subject_race  \\\n",
       "0  2014-01-01  01:25:00          110         24.0                   white   \n",
       "1  2014-01-01  05:47:00          320         42.0                   white   \n",
       "2  2014-01-01  07:46:00          320         29.0  asian/pacific islander   \n",
       "3  2014-01-01  08:10:00          610         23.0                   white   \n",
       "4  2014-01-01  08:35:00          930         35.0                hispanic   \n",
       "\n",
       "  subject_sex       type  \n",
       "0        male  vehicular  \n",
       "1        male  vehicular  \n",
       "2        male  vehicular  \n",
       "3        male  vehicular  \n",
       "4        male  vehicular  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[0:5,\"DATE\":\"type\"].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(390999, 19)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(390999, 19)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dropna(axis=\"columns\",how=\"all\").shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(390999, 3)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dropna(axis=\"columns\",how=\"any\").shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A Simple Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Moving Violation                285562\n",
       "Equipment Violation              99577\n",
       "Radio Call/Citizen Contact        1941\n",
       "Muni, County, H&S Code            1349\n",
       "Personal Knowledge/Informant       884\n",
       "Name: reason_for_stop, dtype: int64"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.reason_for_stop.value_counts().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "male      0.628904\n",
       "female    0.371096\n",
       "Name: subject_sex, dtype: float64"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.reason_for_stop==\n",
    "   \"Moving Violation\"\n",
    "  ].subject_sex.value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "male      0.628904\n",
       "female    0.371096\n",
       "Name: subject_sex, dtype: float64"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.reason_for_stop==\n",
    "   \"Moving Violation\"\n",
    "  ].subject_sex.value_counts(\n",
    "    normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Moving Violation                0.773651\n",
       "Equipment Violation             0.215736\n",
       "Radio Call/Citizen Contact      0.003606\n",
       "Muni, County, H&S Code          0.002516\n",
       "Personal Knowledge/Informant    0.001609\n",
       "Name: reason_for_stop, dtype: float64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.subject_sex==\n",
    "   \"female\"\n",
    "  ].reason_for_stop.value_counts(\n",
    "    normalize=True).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "subject_sex  reason_for_stop             \n",
       "female       Moving Violation                0.773651\n",
       "             Equipment Violation             0.215736\n",
       "             Radio Call/Citizen Contact      0.003606\n",
       "             Muni, County, H&S Code          0.002516\n",
       "             Personal Knowledge/Informant    0.001609\n",
       "Name: reason_for_stop, dtype: float64"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\n",
    "    \"subject_sex\"\n",
    ").reason_for_stop.value_counts(\n",
    "    normalize=True).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>reason_for_stop</th>\n",
       "      <th>&amp;Equipment Violation</th>\n",
       "      <th>&amp;Moving Violation</th>\n",
       "      <th>&amp;Radio Call/Citizen Contact</th>\n",
       "      <th>B &amp; P</th>\n",
       "      <th>Equipment Violation</th>\n",
       "      <th>MUNI, County, H&amp;S Code</th>\n",
       "      <th>Moving Violation</th>\n",
       "      <th>Muni, County, H&amp;S Code</th>\n",
       "      <th>NOT CHECKED</th>\n",
       "      <th>NOT MARKED</th>\n",
       "      <th>...</th>\n",
       "      <th>Radio Call/Citizen Contact</th>\n",
       "      <th>Suspect Info</th>\n",
       "      <th>Suspect Info (I.S., Bulletin, Log)</th>\n",
       "      <th>UNI, &amp;County, H&amp;&amp;S Code</th>\n",
       "      <th>none listed</th>\n",
       "      <th>not listed</th>\n",
       "      <th>not marked</th>\n",
       "      <th>not marked  not marked</th>\n",
       "      <th>not noted</th>\n",
       "      <th>not secified</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>subject_sex</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>0.000015</td>\n",
       "      <td>0.000044</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000007</td>\n",
       "      <td>0.215736</td>\n",
       "      <td>0.000029</td>\n",
       "      <td>0.773651</td>\n",
       "      <td>0.002516</td>\n",
       "      <td>0.000007</td>\n",
       "      <td>0.000015</td>\n",
       "      <td>...</td>\n",
       "      <td>0.003606</td>\n",
       "      <td>0.000044</td>\n",
       "      <td>0.000929</td>\n",
       "      <td>0.000110</td>\n",
       "      <td>0.000007</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000015</td>\n",
       "      <td>0.000007</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.000004</td>\n",
       "      <td>0.000059</td>\n",
       "      <td>0.000004</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.276510</td>\n",
       "      <td>0.000099</td>\n",
       "      <td>0.707770</td>\n",
       "      <td>0.003961</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.005690</td>\n",
       "      <td>0.000043</td>\n",
       "      <td>0.001619</td>\n",
       "      <td>0.000229</td>\n",
       "      <td>0.000016</td>\n",
       "      <td>0.000004</td>\n",
       "      <td>0.000008</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000008</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "reason_for_stop  &Equipment Violation  &Moving Violation  \\\n",
       "subject_sex                                                \n",
       "female                       0.000015           0.000044   \n",
       "male                         0.000004           0.000059   \n",
       "\n",
       "reason_for_stop  &Radio Call/Citizen Contact     B & P  Equipment Violation  \\\n",
       "subject_sex                                                                   \n",
       "female                                   NaN  0.000007             0.215736   \n",
       "male                                0.000004       NaN             0.276510   \n",
       "\n",
       "reason_for_stop  MUNI, County, H&S Code  Moving Violation  \\\n",
       "subject_sex                                                 \n",
       "female                         0.000029          0.773651   \n",
       "male                           0.000099          0.707770   \n",
       "\n",
       "reason_for_stop  Muni, County, H&S Code  NOT CHECKED  NOT MARKED  ...  \\\n",
       "subject_sex                                                       ...   \n",
       "female                         0.002516     0.000007    0.000015  ...   \n",
       "male                           0.003961          NaN         NaN  ...   \n",
       "\n",
       "reason_for_stop  Radio Call/Citizen Contact  Suspect Info  \\\n",
       "subject_sex                                                 \n",
       "female                             0.003606      0.000044   \n",
       "male                               0.005690      0.000043   \n",
       "\n",
       "reason_for_stop  Suspect Info (I.S., Bulletin, Log)  UNI, &County, H&&S Code  \\\n",
       "subject_sex                                                                    \n",
       "female                                     0.000929                 0.000110   \n",
       "male                                       0.001619                 0.000229   \n",
       "\n",
       "reason_for_stop  none listed  not listed  not marked  not marked  not marked  \\\n",
       "subject_sex                                                                    \n",
       "female              0.000007         NaN    0.000015                0.000007   \n",
       "male                0.000016    0.000004    0.000008                     NaN   \n",
       "\n",
       "reason_for_stop  not noted  not secified  \n",
       "subject_sex                               \n",
       "female                 NaN      0.000007  \n",
       "male              0.000008           NaN  \n",
       "\n",
       "[2 rows x 26 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\n",
    "    \"subject_sex\"\n",
    ").reason_for_stop.value_counts(\n",
    "    normalize=True).unstack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    351060\n",
       "True       4917\n",
       "Name: arrest_made, dtype: int64"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.arrest_made.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    0.986187\n",
       "True     0.013813\n",
       "Name: arrest_made, dtype: float64"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.arrest_made.value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "subject_sex  arrest_made\n",
       "female       False          0.991049\n",
       "             True           0.008951\n",
       "male         False          0.983550\n",
       "             True           0.016450\n",
       "Name: arrest_made, dtype: float64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\n",
    "    \"subject_sex\"\n",
    ").arrest_made.value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "subject_race            subject_sex  arrest_made\n",
       "asian/pacific islander  female       False          0.993134\n",
       "                                     True           0.006866\n",
       "                        male         False          0.987704\n",
       "                                     True           0.012296\n",
       "black                   female       False          0.985657\n",
       "Name: arrest_made, dtype: float64"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\n",
    "    [\"subject_race\",\"subject_sex\"]\n",
    ").arrest_made.value_counts(\n",
    "    normalize=True).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2014    144164\n",
       "2015    115422\n",
       "2016    103051\n",
       "2017     28230\n",
       "Name: DATE, dtype: int64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.DATE.str.slice(0,4).value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "combined=df.DATE.str.cat(df.TIME, sep=\" \")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>raw_row_number</th>\n",
       "      <th>DATE</th>\n",
       "      <th>TIME</th>\n",
       "      <th>service_area</th>\n",
       "      <th>subject_age</th>\n",
       "      <th>subject_race</th>\n",
       "      <th>subject_sex</th>\n",
       "      <th>type</th>\n",
       "      <th>arrest_made</th>\n",
       "      <th>citation_issued</th>\n",
       "      <th>warning_issued</th>\n",
       "      <th>outcome</th>\n",
       "      <th>contraband_found</th>\n",
       "      <th>search_conducted</th>\n",
       "      <th>search_person</th>\n",
       "      <th>search_vehicle</th>\n",
       "      <th>search_basis</th>\n",
       "      <th>reason_for_search</th>\n",
       "      <th>reason_for_stop</th>\n",
       "      <th>stop_datetime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>01:25:00</td>\n",
       "      <td>110</td>\n",
       "      <td>24.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "      <td>2014-01-01 01:25:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>05:47:00</td>\n",
       "      <td>320</td>\n",
       "      <td>42.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>warning</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "      <td>2014-01-01 05:47:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>07:46:00</td>\n",
       "      <td>320</td>\n",
       "      <td>29.0</td>\n",
       "      <td>asian/pacific islander</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>warning</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "      <td>2014-01-01 07:46:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:10:00</td>\n",
       "      <td>610</td>\n",
       "      <td>23.0</td>\n",
       "      <td>white</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Moving Violation</td>\n",
       "      <td>2014-01-01 08:10:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2014-01-01</td>\n",
       "      <td>08:35:00</td>\n",
       "      <td>930</td>\n",
       "      <td>35.0</td>\n",
       "      <td>hispanic</td>\n",
       "      <td>male</td>\n",
       "      <td>vehicular</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>citation</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Equipment Violation</td>\n",
       "      <td>2014-01-01 08:35:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   raw_row_number        DATE      TIME service_area  subject_age  \\\n",
       "0               1  2014-01-01  01:25:00          110         24.0   \n",
       "1               2  2014-01-01  05:47:00          320         42.0   \n",
       "2               3  2014-01-01  07:46:00          320         29.0   \n",
       "3               4  2014-01-01  08:10:00          610         23.0   \n",
       "4               5  2014-01-01  08:35:00          930         35.0   \n",
       "\n",
       "             subject_race subject_sex       type arrest_made citation_issued  \\\n",
       "0                   white        male  vehicular       False            True   \n",
       "1                   white        male  vehicular       False           False   \n",
       "2  asian/pacific islander        male  vehicular       False           False   \n",
       "3                   white        male  vehicular       False            True   \n",
       "4                hispanic        male  vehicular       False            True   \n",
       "\n",
       "  warning_issued   outcome contraband_found search_conducted search_person  \\\n",
       "0          False  citation              NaN            False           NaN   \n",
       "1           True   warning              NaN            False           NaN   \n",
       "2           True   warning              NaN            False           NaN   \n",
       "3          False  citation              NaN            False           NaN   \n",
       "4          False  citation              NaN            False           NaN   \n",
       "\n",
       "  search_vehicle search_basis reason_for_search      reason_for_stop  \\\n",
       "0            NaN          NaN               NaN     Moving Violation   \n",
       "1            NaN          NaN               NaN     Moving Violation   \n",
       "2            NaN          NaN               NaN     Moving Violation   \n",
       "3            NaN          NaN               NaN     Moving Violation   \n",
       "4            NaN          NaN               NaN  Equipment Violation   \n",
       "\n",
       "        stop_datetime  \n",
       "0 2014-01-01 01:25:00  \n",
       "1 2014-01-01 05:47:00  \n",
       "2 2014-01-01 07:46:00  \n",
       "3 2014-01-01 08:10:00  \n",
       "4 2014-01-01 08:35:00  "
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"stop_datetime\"]=pd.to_datetime(combined)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "raw_row_number                int64\n",
       "DATE                         object\n",
       "TIME                         object\n",
       "service_area                 object\n",
       "subject_age                 float64\n",
       "subject_race                 object\n",
       "subject_sex                  object\n",
       "type                         object\n",
       "arrest_made                  object\n",
       "citation_issued              object\n",
       "warning_issued               object\n",
       "outcome                      object\n",
       "contraband_found             object\n",
       "search_conducted             object\n",
       "search_person                object\n",
       "search_vehicle               object\n",
       "search_basis                 object\n",
       "reason_for_search            object\n",
       "reason_for_stop              object\n",
       "stop_datetime        datetime64[ns]\n",
       "dtype: object"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    1.0\n",
       "1    1.0\n",
       "2    1.0\n",
       "3    1.0\n",
       "4    1.0\n",
       "Name: stop_datetime, dtype: float64"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.stop_datetime.dt.month.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    False\n",
       "1    False\n",
       "2    False\n",
       "3    False\n",
       "4    False\n",
       "Name: arrest_made, dtype: object"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.arrest_made.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[\"arrest_made\"]=df.arrest_made.astype(bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    351060\n",
       "True      39939\n",
       "Name: arrest_made, dtype: int64"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.arrest_made.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.10214604129422326"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.arrest_made.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "stop_datetime\n",
       "0.0    0.113073\n",
       "1.0    0.140684\n",
       "2.0    0.141698\n",
       "3.0    0.127541\n",
       "4.0    0.105165\n",
       "Name: arrest_made, dtype: float64"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\n",
    "    df.stop_datetime.dt.hour\n",
    ").arrest_made.mean().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='stop_datetime'>"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEHCAYAAACgHI2PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA3zklEQVR4nO3dd3hc9ZXw8e/RqHerWs2WrOIC7sIdcCgJ1ZBiAiSQZMMSE9iQzWb3IdnsZvfdd9/Nblg2YUMgtJAEAqElMcahF1Ns4y4X2ZIsF426bKtZVp3f+8eMjCyrjKQZ3Snn8zx6PHPnlp/Go6Orc889PzHGoJRSKnCFWD0ApZRS3qWBXimlApwGeqWUCnAa6JVSKsBpoFdKqQAXavUAhpKSkmJyc3OtHoZSSvmNHTt2NBljUod6zScDfW5uLtu3b7d6GEop5TdE5Nhwr2nqRimlApwGeqWUCnAa6JVSKsBpoFdKqQCngV4ppQKcBnqllApwGuiVUirA+WQdvVLK/xhj2FTeRJ/DweyMeKbGRyIiVg9LoYFeKeUBnT19/POf9/H8dvvZZVOiw5g1NZ7ZGfHMzohjdkY8hemxRITaLBxpcNJAr5SakLqWTtY9vYPdVc1857ICLi5KpbS2ldLaVg7UtvH7T47R2eMAIDREyE+NPRv4+79S4yIs/i4CmwZ6pdS47Th2knVP76Sjq5dHvrqYqy6cCsBFuUln1+lzGI6eOO0M/DXOXwBbKk/yp901Z9e5bdl0/u3GCyd9/MFCA71Salye/eQ4//znfWQlRvHMHUspSo8bcj2b6yw+PzWW6+Zlnl1+6nQ3pXWtPPXRUZ7bdpzvf3YmCdFhkzX8oKJVN0qpMenudfDDP+7lBy/vZUV+Cn++e9WwQX4kU2LCWZGfwj2XFdDTZ3htf60XRqtAA71Sagwa2jq59bEt/H7rcdZdms+TX79owmfhc7MSyE2OZv2emtFXVuOigV4p5ZbdVc2s+d+P2FfTwv/espD7rp6FLWTi5ZMiwpr5mWw+fIKGtk4PjFQNpoFeKTWqF7ZXcdOvNhNqE16+ayXXz88cfaMxWLMgE4eBV0s0feMNGuiVUsPq6XPwL+v38/cvllA8fQrr71nFnMx4jx+nIM1ZbqnpG+/QQK+UGtKJ9i5ue2IrT318lG+uyuO3f7WEpJhwrx1vzfxMdh1vpupkh9eOEaw00CulztPU3sWaX3zEzuPNPHDTfP7pujmE2rwbLq6fnwGgZ/VeoIFeKXWeP+2qprr5DL+/YylfWJQ9KcfMnhLN4ulTeEUDvce5FehF5CoROSQiFSJy3xCvzxKRzSLSJSLfH/Raooi8KCIHRaRURJZ7avBKKe94paSWC7PiKR5wh+tkWDM/k4N1bZTVt03qcQPdqIFeRGzAQ8DVwBzgFhGZM2i1k8B3gPuH2MXPgdeMMbOA+UDphEaslPKqqpMd7KlqPucu1slyzdwMQgTW79azek9y54x+CVBhjKk0xnQDzwE3DFzBGNNgjNkG9AxcLiLxwCXAE671uo0xzZ4YuFLKO14pcQbZa+dmTPqxU+MiWFmQwvo9NRhjJv34gcqdQJ8FVA14bnctc8cMoBH4tYjsEpHHRSRmqBVF5E4R2S4i2xsbG93cvVLK0zbsqWXhtERykqItOf718zM5frKDPfYWS44fiNwJ9EPd+ubur9pQYBHwsDFmIXAaOC/HD2CMedQYU2yMKU5NTXVz90opTzrc2M6B2lZL0jb9PnfBVMJtIZq+8SB3Ar0dyBnwPBtw93/ADtiNMVtdz1/EGfiVUj5ow55aRKxJ2/RLiApj9cxUNpTU0OfQ9I0nuBPotwGFIpInIuHAzcB6d3ZujKkDqkRkpmvR5cCBcY1UKeVVxhheKanhotwkpiZEWjqWNQsyaWjrYuuRE5aOI1CMGuiNMb3APcDrOCtmnjfG7BeRdSKyDkBEpoqIHfge8CMRsbsuxAL8DfCMiJQAC4D/54XvQyk1QYfq26hoaOf6edadzfe7fFY6MeE2ran3ELcmHjHGbAQ2Dlr2yIDHdThTOkNtuxsoHv8QlVKTYcOeWkIErrYwbdMvKtzGlXPS2bi3jn9dcyHhoXpv50Tou6eUwhjDhpIaVuSnkBLrG/O3rlmQScuZHj4o1yq8idJAr5RiX3UrR090cJ0PpG36rSpIJTE6jD9r9c2EaaBXSrGhpIbQEDk7ubcvCA8N4eoLM3jzQD0d3b0T3p8xBvup4OyMqYFeqSDnTNvUcnFhConR3mtDPB5r5mdypqePt0obJryv+984xKr/fJfNh4OvkkcDvVJBbufxZqqbz3h81ihPWJKXRHp8xIRvntpQUsND7x4G4Lltxz0xNL+igV6pILehpIbw0BCunJNu9VDOYwsRrpuXyftlDbR09Iy+wRD217Tw9y+UsHj6FL5cnMNr++poOTO+ffkrDfRKBbE+h+HVklpWF6USFxlm9XCGtGZ+Jj19htf2j30+2RPtXdz52x0kRIXx8FcXcevSaXT1OthQElwXeDXQKxXEth09SUNbl0+mbfrNy05genL0mGee6ulzcPfvd9LY3sWvbltMWlwk87ITKEqP5YXtdi+N1jdpoFcqiG0oqSEqzMbls9OsHsqwRIQ18zPZfPgEDW2dbm/3fzccYEvlSX7yhbnMz0k8u6+1i3PYXdVMRUPwTG6igV6pINXb5+Ave+u4bHYa0eFu3SRvmTXzM3EYeLXEvfTN89uq+M3mY3xzVd55UyHeuDALW4gE1Vm9BnqlgtTmyhOcON3N9Ra2JHZXYXocs6bGuZW+2XHsFD/60z5WFaTwg6tnnfd6alwEn5mZxsu7quntc3hjuD5HA71SQWrDnlpiI0JZPdM/5n9YsyCTXcebqTo5/E1PdS2drHt6B1MTIvnFrQsJtQ0d4tYWZ9PY1sX7ZcHRXkEDvVJBqLvXwWv767hyTjqRYTarh+OW/r88hjur7+zp41tP7+B0Vy+P3V484s1fl81KIzkmPGjSNxrolQpCH1Y00nKmh+vn+05vm9HkJEWzaFrikK2LjTH84x/3saeqmQduWsDMqXEj7ivMFsKNC7N4+2A9J093e2vIPkMDvVJBaMOeWhKiwlhV4B9pm35r5mdysK6NsvpzK2Z+/dFRXtpp597LC93u17O2OJuePsOfdlV7Y6g+RQO9UkGms6ePNw7U87kL0v2uz/u18zIJEc5pifBRRRP/vrGUz85J597LC93e16yp8czLTuD57VUYE9hTFrr1vywiV4nIIRGpEJHzJvcWkVkisllEukTk+0O8bhORXSKywRODnmzGGE6e7uZgXSubyhp5cYed9w5NvMmSUlZ471Aj7V29Pn2T1HBS4yJYWZDC+j01GGM4fqKDu3+/kxkpMTzw5QWEhMiY9rd2cTYH69rYX9PqpRH7hlGLZ0XEBjwEXIlzsu9tIrLeGDNw7teTwHeAG4fZzb04pyGMH+Z1y5zp7qOsvo3Gti4a2rpoaOt0/tvaRaPrcVN7Fz195//Gf+jWRVzrQ/27lXLHhpIakmPCWT4j2eqhjMv18zP5hxdL2Hz4BP/6ygEcDsNjtxcTGzH2ewHWzM/i314t5YXtVVyYleCF0foGd96ZJUCFMaYSQESeA25gwCTfxpgGoEFErh28sYhkA9cC/45zTlmfcufvtvNBedM5y5JjwkmNiyA1LoKCtDjS4iNIcz1Pi4skJTac7z2/h/teKmFedgI5SdEWjV6pseno7uXt0ga+sChr2NJDX/e5C6byoz/u469/u50zPX089Y0l5KbEjGtfCdFhfHZOOn/eU8MPr51NRKh/VCCNlTuBPguoGvDcDiwdwzF+BvwDMOJlcBG5E7gTYNq0aWPY/fhVnezgg/ImvrJ0GjcV55AWH0FKbARhbvwA/O8tC7nmwQ+459ldvPCt5X6X61TB6e3SBs709Pll2qZfQlQYq2em8saBev7xmtlcUjSxC8pri3PYUFLLWwcaAvYvdHei01BJL7euXIjIdUCDMWbHaOsaYx41xhQbY4pTUyenEuDFHXZE4NufKWB+TiIZCVFuBXlwlnr91xfnsaeqmfvfOOTlkSrlGRtKakiLi+Ci3CSrhzIhP7p2Dv/5xbnccXHehPe1qiCFjIRIXthRNfrKfsqdqGYHcgY8zwbcbSO3ElgjIkeB54DLROTpMY3QSxwOw4s77KzMTyErMWpc+7h6bgZfXTaNRzdV8q5enFU+rq2zh3cPNXLN3AxsY7xo6WumJUfz5YumITLx78MWInxhURabyhqpa3G/aZo/cSfQbwMKRSRPRMKBm4H17uzcGPMDY0y2MSbXtd07xpivjnu0HrTlyAmqm8+wtjh79JVH8KNr5zBrahx/9/yegP2QqMDw5oF6unsdfp228ZYvLc7BYeDlXYF5p+yogd4Y0wvcA7yOs3LmeWPMfhFZJyLrAERkqojYcV5s/ZGI2EXE5ypsBnpxu524yFA+d8HEJkOODLPxi1sXcaa7j+/+YRd9jsCux1X+a0NJLVmJUSyalmj1UHxOXkoMF+VO4cXt9oCsqXcrIW2M2WiMKTLG5Btj/t217BFjzCOux3WuM/d4Y0yi63HroH28Z4y5zvPfwti1dfawcV8t18/P9Eifj4K0WP7PDRewpfIk//tOuQdGqJRnNXd0s6mskevmZXgk3RGI1i7OobLpNDuPn7J6KB4XlKUir5bU0tnjYO3iiaVtBvrS4mw+vzCLB98uZ0tl8M0yr3zb6/vr6HUYrvODlsRWuWZeBlFhtoBsdBaUgf6FHXYK0mJZ4Jp1xhNEhH+78UKmJ8dw73O7gqJRkvIfG0pqmZ4czYVZPp1RtVRsRCjXzM1gQ0ktHd29Vg/Ho4Iu0B9ubGfHsVN8aXG2x/+EjY0I5Re3LuTU6R6+/8KegMz1Kf/T1N7FRxVNXD8vU9M2o1hbnE17Vy+v7auzeigeFXSB/qUddmc51cIsr+z/gswE/vHa2bxzsIEnPjzilWMoNRZvHqjHYeA6P2pJbJWleUlMS4oOuPRNUAX6Pofh5Z3VXFqUSlp8pNeOc/vy6XzugnT+87WD7Klq9tpxlHLHnqpmpkSHMTN95B7tqn/y8Gw2V54YcSYrfxNUgf6D8kbqWjs9ehF2KCLCf31xPmlxkdzz7E5aO3u8ejylRlJa28rsjHhN27jpi4uzEXHeOR8ogirQv7DDzpToMC6fne71YyVEh/HgLQuoae7kBy/v1Xy9skSfw3Covo3ZGXoR1l2ZiVGsKkjhxR12HAFyX0zQBPrmjm7e3F/PDQuyJq0B2eLpSXzvyiJeLanl2U8Ct4+G8l1HT5yms8fBrFGm1lPn+tLibKqbzwRMqXTQBPr1e2ro7nPwJS+nbQa769J8Li5M4V9f2c/BusCe3ED5noO1zin39Ix+bD53wVTiIkN5IUDSN0ET6F/cYWd2RvykTy4QEiI8cNMC4iLDuOf3uzjT3Tepx1fBrbS2FVuIUJAWa/VQ/EpkmI018zP5y77agLjGFhSB/lBdGyX2Fq9fhB1OalwE/33TfCoa2vn9J8ctGYMKTqW1reSnxnik1UewWVucQ2ePg1dLaq0eyoQFRaB/YXsVYTbhRi/Vzrvj0qJUluQl8cQHlXT3OiwbhwouB+v0Qux4zc9OoDAtlue3+//1tYAP9D19Dv60u5rLZ6WTFBNu6VjuujSfmpZO1u9xt52/UuPX0tFDdfMZZk3VQD8eIsLa4mx2HW+moqHN6uFMSMAH+ncPNtDU3j3pF2GHsnpmKrOmxvGr9w8HTNmW8l39F/9nZ2jFzXh9fmE2oSHC01v8O+Ua8IH+xR12UmIjWD1zcqYnHImIsO7SfMob2nn7oM5IpbyrtLY/0OsZ/XilxkVw48Isntt23K8bFQZ0oG9q7+Kdg7414/118zLInhLFw+9V6E1UyqtKa9tIigknLS7C6qH4tXWXzqCzx8FvPj5q9VDGzTein5f8aVc1vQ5jWbXNUEJtIfz1xTPYebyZbUcDb4ID5TsO1rUyOyNOWx9MUEFaHFfOSec3m4/6bftitwK9iFwlIodEpEJE7hvi9VkisllEukTk+wOW54jIuyJSKiL7ReReTw5+JMY4J/+en5NIoY81c7qpOIekmHAeef+w1UNRAaq/9YFeiPWMdZfm09zRw3N+eof7qIFeRGzAQ8DVwBzgFhGZM2i1k8B3gPsHLe8F/s4YMxtYBtw9xLZesa+6lYN1bT51Nt8vKtzG11fk8s7BBr1bVnlFf+sDzc97xuLpU1iSl8TjH1TS0+d/5dHunNEvASqMMZXGmG7gOeCGgSsYYxqMMduAnkHLa40xO12P23BOLj4pxewv7KgiPDSE63106rTbl08nOtzGr96vtHooKgD1X4jVHjeec7Y8erf/lUe7E+izgIF/r9gZR7AWkVxgIbB1mNfvFJHtIrK9sbFxrLs/R1dvH3/eXcPnLphKQnTYhPblLYnR4dyyZBrr99QEVN9r5RtKa1sJDREK07X1gaf0l0c/4ofl0e4E+qGu5IzpuxSRWOAl4LvGmCFzFcaYR40xxcaY4tTUiZVCvnWggZYzPT6ZthnojovzCBF0JirlcQdr28hPjSUiVFsfeMrA8uh3/Kw82p1AbwdyBjzPBtz+20VEwnAG+WeMMS+PbXjj88KOKjISIllZkDIZhxu3jIQobljgrNE90d5l9XBUACmtbWWW3ijlcWfLo/2skMKdQL8NKBSRPBEJB24G1ruzc3HWdT0BlBpjHhj/MN1X19LJprJGvrgoG1uI75eVna3R3XzM6qGoANHS0UNNS6deiPWC/vLoHcdOse3oSauH47ZRA70xphe4B3gd58XU540x+0VknYisAxCRqSJiB74H/EhE7CISD6wEbgMuE5Hdrq9rvPbdAC/vsuMwzunA/MHZGt2Pj3K6yz9rdJVvKa3TC7He1F8e/fB7/nNWH+rOSsaYjcDGQcseGfC4DmdKZ7APGTrH7xXGGF7cbuei3CnkpcRM1mEn7K7V+bx5oJ7ntlXxzVV5lozhaNNpyurb+OwFUy05vvKc/oqbOXpG7xX95dEPvFnGwbpWv7hXIaDujN15vJnKptOsXZwz+so+ZNG0T2t0rWph/OA75dz1zE7aAmCShWB3sLaN5JhwUrX1gdf4W3l0QAX6F3dUERVm45p5GVYPZczuWp1PrYUtjEvsLfQ5DFsr/SfvqIZWWue8EKutD7xnYHm0/ZTvl0cHTKA/093HK3tquWZuBrERbmWkfMrqIutqdNu7ejnc2A7AhxVNk3ps5Vl9DsOhujZm+0E6wd99c1UeAjz+ge+XRwdMoA8PDeHhry7izktmWD2UcRER7lqdT4UFLYz3V7dgDMSE2/j4sAZ6f3ak6TRdvQ5maX7e6zITo/ymhXHABHpbiHBxYSoz/bjS4Nq51rQw3lvdAsAtS6ZRVt9OQ2vnpB1bedanPej99+fAn/SXRz/l4y2MAybQB4JQWwh3XjL5LYz32FvITIjkhgXOzhYfHz4xacdWnnWwztn6oCBNWx9Mhv7y6N9u9u3yaA30Pmbt4v4a3YpJO+ZeezPzshOZkxlPYnSY5un9WKm2Pph0Z1sYb/PdFsYa6H1MVLiNb6zI5d1DjWf/DPemlo4ejp7oYG52ArYQYUV+Mh9XNOnsV37qYG2rpm0mWX8L4ycsLI8ejQZ6H3Tb2Rpd7995t6/GmZ+fl50AwIr8FGpaOjnSdNrrx1ae1dzRTU1Lp16ItcDZFsYWlUePRgO9D0qMDufWJdN4paTW6y2M99ibAZiXlQjAKlcjuI80T+93SmvbAJ0M3Ar9LYx/5aMtjDXQ+6hvuloYP/6Bd++822tvYXpy9Nm+/dOTo8lKjOKjcs3T+5v+2co0dTP5BrYwnuzyaHdooPdRGQlR3Lggiz9sr/JqC+MSewtzsxLOPhcRVhYks7nyBH0+eGaihlda2+psfRCrrQ+scLaF8RjLo/schp3HT/Hzt8r5pz/t88rYNND7sG+5anRf2GH3yv5PtHdR3XzmbH6+38qCFFrO9LDflb9X/uFgXRuzM+K19YFF+lsYu1MeXd18hmc/Oc63n9nBwv/zBl/45cf87O0y9tW00OuFOWn9r1dAEClIi2NmehwfVTSx7tJ8j++/pLr/QmziOctX5Lvy9BUnzntN+abePgeH6tq4bdl0q4cS1G4qzuHnb5fzyPuHWZKXdHb56a5etlSe4IPyJjaVN1LZ6Cx2mBofyecumMolRamsLEghKSbcK+PSQO/jlucn84dtVXT3OggP9ewfYHvtLYjABZnnXrxLjYs4+wvmrtWe/wWjPO/oCWfrA70Qa62BLYxfLanl6InTfFDeyI5jp+jpM0SGhbA0L5mvLJ3OJYUpFKTFTspfYBrofdyyGUk89fFRSuzNFOcmjb7BGJTYW5iREkNc5PkTqK8sSOGZrcfo7OkjMkxvvvF1WnHjO25fPp1H3j/M3b/fCTjnBfirVXlcUpjK4ulTLPl5civQi8hVwM8BG/C4MeYng16fBfwaWAT8ozHmfne3VSNbmpcMwJbKEx4P9Hurm8+maQZbWZDMkx8dYeexU6zw8bl3lfNCbGiIkJ/mPxPuBKrE6HAeu72YhrZOVhakkBYXafWQRr8YKyI24CHgamAOcIuIzBm02kngO8D949hWjWBKTDizpsaxudKzde31rZ3Ut3addyG239IZydhCRNsh+InS2lYK0rT1ga9YWZDC5xdm+0SQB/eqbpYAFcaYSmNMN/AccMPAFYwxDcaYbcDg6YlG3VaNbnl+MtuPnqKrt89j+yyxn3tH7GCxEaEsyEnUG6f8xMG6Np0jVg3LnUCfBQzs1mN3LXOH29uKyJ0isl1Etjc2Nrq5++CwfEYyXb0O9lR5rtxxr72ZEIE5GUMHenCeley1N9NyRqcX9GXNHd3UtnRqfl4Ny51AP9QlYXfvBnB7W2PMo8aYYmNMcWpqqpu7Dw5L85IRgc0ePLveY2+hKD2OqPDh/9RfmZ+MwzivDyjfpRdi1WjcCfR2YOBs29mAu517JrKtckmIDmNORrzHAq4xhr3VLcOmbfotnDaFqDAbH2me3qf1dzmdpa0P1DDcCfTbgEIRyRORcOBmYL2b+5/ItmqAZTOS2XH8FJ09E8/TVzef4eTpbuaOcjNUeGgIS/KSNND7uNLaVlJiw33mwp/yPaMGemNML3AP8DpQCjxvjNkvIutEZB2AiEwVETvwPeBHImIXkfjhtvXWNxPIls9IprvXwa7jzRPe197+C7FZI5/Rg7Ob5eHG09S16PSCvsp5IVbTNmp4btXRG2M2AhsHLXtkwOM6nGkZt7ZVY3dRXhIh4syXL89PntC+9thbCLOJW3/qryhwHuujiia+uHjI/2Jlod4+B4fq2/jacm19oIanTc38REJUGBdkJniknn5vdTOzpsa7VXM9e2o8STHhmr7xUUdPnKZbWx+oUWig9yPL85PZfbx5Qnl6Y4yzNfEoF2L7hbimF/zosE4v6IsOuCpuNHWjRqKB3o8sm5FEd5+DncdGboE6kmMnOmjr7HUrP99vZUEK9a1dHG5sH/dxlXf0tz4oSIu1eijKh2mg9yMX5Trz9BNJ3/RPHejuGT0MmF6wQuvpfc1BV+sDT3c2VYFFPx1+JC4yjLlZCROqp99rbyEiNISidPdrrnOSoslJitK+Nz6otLZN8/NqVBro/cyy/GR2VzVzpnt8efqS6hbmZMYTZhvbf/2qghS2VJ7wyuw3anxOne6mrrVT54hVo9JA72eWz0imp8+wYxx5+j6HYX91y5jy8/1W5KfQ1tnL3mqdXtBXlLomA9cLsWo0Guj9THFuErYQYXPl2NMolY3tnO7uG/WO2KGscNXuf6zdLH2G9rhR7tJA72diI0KZl50wrgZn/a2J54/hQmy/5NgIZmfE82G55ul9xUFX64PUuAirh6J8nAZ6P7RsRjIl9hZOd/WOabu91S1Eh9uYkTq+UrxVBcnsOHZq3NcHlGeV1rXq2bxyiwZ6P7R8RjK9DsP2MebpS+zNXJiZgC1kfJMRryhIobvPwfZjJ8e1vfKc3j4HZfXtGuiVWzTQ+6HF06cQGiJjKrPs6XOwv6Z11NbEI1mSm0SYTacX9AVHmpytD3RWKeUODfR+KCYilPk5iWPK05fXt9PV6xjTjVJDHXdhzhQ+1hunLHfA1YNez+iVOzTQ+6nlM5LZW91Cu5t5+r3VzQDMG0fFzUArC1LYV9NCc0f3hPajJuZgXRthNiF/nNdbVHDRQO+nls1Ips9h2HbUvXx5ib2FuMhQpidFT+i4KwuSMcaz0xqqsSutbSU/VVsfKPfop8RPLZ4+hTCbsMXNgFtid04dGDLOC7H95uckEhNu0zy9xQ7WtjFH0zbKTW4FehG5SkQOiUiFiNw3xOsiIg+6Xi8RkUUDXvtbEdkvIvtE5FkR0fnOPCAq3MaCnES3Lsh29fZxsK6VuVmJEz5umC2EpTOS9cYpC/W3PtA5YpW7Rg30ImIDHgKuBuYAt4jInEGrXQ0Uur7uBB52bZsFfAcoNsZcCNhwzhurPKA/T9/a2TPieofq2ujpMxOquBloZUEKR5pOU918xiP7U2NTqhdi1Ri5c0a/BKgwxlQaY7qB54AbBq1zA/Bb47QFSBSRDNdroUCUiIQC0UCNh8Ye9JblJ+MwsO3IyHn6Pa47YueOo8fNUD5tW6zpGyuU1ulkI2ps3An0WUDVgOd217JR1zHGVAP3A8eBWqDFGPPGUAcRkTtFZLuIbG9sbHR3/EFt0bQphNtCRk3f7LU3kxQTTvaUKI8ctyg9lpTYCA30FimtbSUlNkJbHyi3uRPoh7p6N3hOuSHXEZEpOM/284BMIEZEvjrUQYwxjxpjio0xxampqW4MS0WG2Vg4LXHUiUhK7C3MzUpAZGIXYvuJCCsLkvmo4kTATS/Y5zCU17dZPYwRHaxr1dbEakzcCfR2IGfA82zOT78Mt84VwBFjTKMxpgd4GVgx/uGqwZbNSGZ/TSstZ4bO05/p7qO8od1j+fl+K/NTaGrvoqw+sKYXfPDtcj73s03UtXRaPZQhaesDNR7uBPptQKGI5IlIOM6LqesHrbMeuN1VfbMMZ4qmFmfKZpmIRIvzdPJyoNSD4w96y/Odde2fDJOnP1DbQp/DeCw/329lYeDl6Zvau3jsg0oc5tMLnr6m0tX6QM/o1ViMGuiNMb3APcDrOIP088aY/SKyTkTWuVbbCFQCFcBjwLdd224FXgR2Antdx3vU099EMFuQk0h46PB5+rOtiXMSPXrcrMQocpOjAyrQP/RuBZ09zs6c5Q2+mb7p/wWkF2LVWIS6s5IxZiPOYD5w2SMDHhvg7mG2/THw4wmMUY0gMszG4mlThr1Tda+9hbS4CNLjPX/7wsqCFP68u4aePseYpyb0NfZTHTyz5ThrF+fwzqEGn01JldZq6wM1dv7906kAZ/qmtK51yP4zJdUtHs/P9/vMzDTau3r5yV8O+v1F2Z+/VQ4C915RSFF6rE9ekDXG8FFFEzOnxmnrAzUm+mkJAMtmOPP0Wwfl6du7ejnc2O6RO2KHcvnsNL6+IpcnPjzC/7xV7pVjTIaKhjZe2mnntmXTyUyMojAtjvKGdp/75fVRxQn2VrfwlaXTrR6K8jMa6APA/JwEIsNCzkvf7KtuwRiYl+OdM3oR4Z+vm8NNxdk8+HY5v3r/sFeO423//UYZUWE2vr06H4DC9Fg6uvt87s7fh96tID0+gi8sGnwbi1Ij00AfACJCbSyePuW8C7J7PXxH7FBCQoT/+MI8rpuXwX/85SC/23zUa8fyhhJ7M3/ZV8cdF88gOdZ5A1JRurOipbzBd/L0O4+fYnPlCf764hlEhNqsHo7yMxroA8TyGckcrGvj5OlP8/Ql1S1kJUaREuvdOyhtIcL/fHkBV8xO45/+vJ+Xdti9ejxP+unrh5gSHcYdF+edXVaY5rzQ6Ut5+l++e5jE6DBuWTLN6qEoP6SBPkAsz08GYOuAs/oSe7NXz+YHCrOF8ItbF7GyIJm/f3EPf9lbOynHnYiPDzfxQXkT315dQFxk2NnlidHhpMZF+EzlzcG6Vt4qrecbK/KIiXCrUE6pc2igDxBzsxKJCrOdTd+0dPRw7ESH1/LzQ4kMs/HY7cUsnDaF7zy3i3cPNkzascfKGMNPXz/E1PhIblt+/sXNovRYn0ndPPzeYWLCbXxthV6EVeOjgT5AhIeGUJw75Wzfm73Vzvz8PC9V3AwnOjyUJ79+EUXpcax7eofPzkT1VmkDu443c+8VhUSGnZ/zLkyLo6K+zfLKm+MnOnhlTw1fWTadxOhwS8ei/JcG+gCybEYyZfXtNLV3UeKaI3ayUjcDJUSF8btvLmVaUjR3/GYbu46fmvQxjKTPYbj/9UPkpcSwdnH2kOsUpsdyuruPGot73jyy6TChISHcsSpv9JWVGoYG+gDyaZ7+JCVVLeQmR5MQHTbKVt6RFBPO03csJSUugq89+QkHanynd8z6PdUcqm/je1cWETrMHb2Fac7KmzILL8jWt3by4nY7a4uzSfPCnc0qeGigDyBzsxKIDrexubKJvdUtzM1OtHQ86fGRPP3NpcREhHLbE1up8IGcd3evgwfeLGNORjzXzs0Ydr2idOsrb5748Ai9DgffuiTfsjGowKCBPoCE2UK4KDeJN/bXU918hnkWpG0Gy0mK5pk7liICX318K1UnOywdzx+2Hafq5Bn+/qqZI06U3l95U25R5U1zRzdPbznGmvmZTEuOtmQMKnBooA8wy/OTaWjrAmCul3rcjNWM1Fh+982lnOnp4yuPb7Ws13tHdy8PvlPBktwkVheNPrlNYVosZRb9FfLUx0fp6O7jrtUFlhxfBRYN9AFm2Qxnnl4ELvSBM/p+szPi+c1fLeFEexdfeXwLu46fwuGY3IqWpz4+SmNbF/9w1Uy3ZtsqSrem8uZ0Vy9PfXyUK2anM3Oq9p1XE6eBPsBcmBlPbEQo+amxxPrYzTULchJ58usXUdvSyed/+TFL/t/b3PdSCW8dqOdMd59Xj93S0cMj7x3msllpFOcmubVNQZo1lTfPfnKc5o4evv0Zzc0rz/CtSKAmLNQWwrc/k09ClDXVNqNZOiOZj++7jPcONfJmaT2vltTy3LYqIkJDuLgwhStmp3PZ7DTS4jxbZfKrTYdp7ezl+5+d6fY2Z3ve1LeRleiZidVH09Xbx6ObKlmRn8yiaVMm5Zgq8GmgD0Df9vG8bmJ0ODcuzOLGhVl09zr45MhJ3iqt580D9bxV6rybdkFOIlfMTuOKOenMTI+b0MTmDW2d/Pqjo6yZn8mcTPdnZvq05007q2emjfv4Y/HSjmoa2rp44KYFk3I8FRzcCvQichXwc8AGPG6M+cmg18X1+jVAB/B1Y8xO12uJwOPAhYAB/soYs9lT34Dyb+GhIawqTGFVYQo/vn4Oh+rbeOtAPW+WNnD/G2Xc/0YZ2VOiuGJ2OpcWpbI4dwrxkWP7a+UX71TQ3efgb68sGtN2U2LCSYmNmLRa+t4+B7/adJj52QmsLEielGOq4DBqoBcRG/AQcCVgB7aJyHpjzIEBq10NFLq+lgIPu/4F5y+A14wxX3JNLq61YmpIIsKsqfHMmhrPPZcV0tDayTsHG3irtJ5nPznOUx8fJURgTmY8S/OSWZqXxJK8pBFbA1Sd7ODZT45zU3EOeSkxYx7TZPa8eXVvLcdOdPDD2xZP6C8YpQZz54x+CVBhjKkEEJHngBuAgYH+BuC3rrljt4hIoohkAKeBS4CvAxhjuoHz57tTaghp8ZHcvGQaNy+ZRmdPHzuPn2Jr5Um2HjnB01uO8cSHRwCYNTWOpXlJLJ2RzEW5SaTGfdqW+X/eLCNEhHsvLxzXGArTYnlpZzXGGK8GX2MMD793mMK0WK6cne6146jg5E6gzwKqBjy38+nZ+kjrZAG9QCPwaxGZD+wA7jXGnB58EBG5E7gTYNo07bmtzhUZZmNFfgor8lMA50XLPVUtfHLkBFuPnOT57XZ+s/kYAPmpMSydkUxRWix/3F3NX188g6kJ47u4W5geR3tXL7UtnWR68YLsOwcbOFjXxgM3zR/xRi6lxsOdQD/Up25wYfFw64QCi4C/McZsFZGfA/cB/3TeysY8CjwKUFxc7FuTdSqfExFqY4krdXMP0NPnYG91y9kz/vW7a2jv6iUuIpS7Lh1/mWL/Bdmy+javBXpjDL94t4LsKVFcPz/TK8dQwc2dQG8HcgY8zwZq3FzHAHZjzFbX8hdxBnqlPCrMFsKiaVNYNG0Kd63Op7fPQWltG1HhIUyJGX97309LLL1XebOl8iS7jjfzbzdcQNgwTdaUmgh3PlXbgEIRyXNdTL0ZWD9onfXA7eK0DGgxxtQaY+qAKhHpL16+nHNz+0p5RagthLnZCRSkTezO0v7Km/IG71Xe/PK9ClJiI1hbnDP6ykqNw6hn9MaYXhG5B3gdZ3nlk8aY/SKyzvX6I8BGnKWVFTjLK78xYBd/Azzj+iVROeg1pXxeYVqs16YVLLE380F5E/ddPWvICVCU8gS36uiNMRtxBvOByx4Z8NgAdw+z7W6gePxDVMpaReneq7z55buHiY8M5StLtQBBeY8mBJUaRcGAyhtPqmho4/UDdXxtRe45k5Mr5Wka6JUaRdGAyhtPevi9SiJDbXxjpU4TqLxLA71So+ivvPHkDFkd3b28sqeGLy3OJmkCVUFKuUMDvVKjcFbehHv0jH5r5Um6+xxcOUfvglXep4FeKTcUpsV5tOfN+2WNRISGsCTPvd74Sk2EBnql3FCYHktFfbvHZpvaVN7I0hnJWlKpJoUGeqXcUJgeR1tXL3WtE6+8sZ/qoLLxNJcUpnhgZEqNTgO9Um74tPJm4umbTWVNAFzqxgTlSnmCBnql3FA4YFrBidpU1khGQiQFrl8eSnmbBnql3JDkqrwpn+AZfW+fg48ON3FJYapOLqImjQZ6pdxUkBZL2QSbm+2uaqats5dLZ2raRk0eDfRKuakoPW7ClTebyhoJEViZrxdi1eTRQK+UmwrTYidcefN+eRMLchJJiNbeNmryaKBXyk39F2THW3lz6nQ3JfZmLtFqGzXJNNAr5aaiCVbefFjRhDFooFeTTgO9Um5KigknOWb8lTebyhpJiApjfnaiZwem1CjcCvQicpWIHBKRChE5b85X1xSCD7peLxGRRYNet4nILhHZ4KmBK2WFwvTYcU0raIxhU3kjqwpSsIVoWaWaXKMGehGxAQ8BVwNzgFtEZM6g1a4GCl1fdwIPD3r9XqB0wqNVymKFaXGUj6Py5lB9G/WtXVxSpNU2avK5c0a/BKgwxlQaY7qB54AbBq1zA/Bb47QFSBSRDAARyQauBR734LiVskRR+vgqbzaVNQKan1fWcCfQZwFVA57bXcvcXednwD8AjpEOIiJ3ish2Edne2NjoxrCUmnyftkIYW55+U1kThWmxZCREeWNYSo3InUA/VEJx8N+tQ64jItcBDcaYHaMdxBjzqDGm2BhTnJqqZz3KNxWOY1rBM919fHL0pJ7NK8u4E+jtQM6A59lAjZvrrATWiMhRnCmfy0Tk6XGPVimLJcdGkBwTPqZpBbccOUF3r0MDvbKMO4F+G1AoInkiEg7cDKwftM564HZX9c0yoMUYU2uM+YExJtsYk+va7h1jzFc9+Q0oNdkK0mLHdEa/yTWb1FKdTUpZZNRAb4zpBe4BXsdZOfO8MWa/iKwTkXWu1TYClUAF8BjwbS+NVynLFaU7pxV0t/JmU1kjS/KSdDYpZZlQd1YyxmzEGcwHLntkwGMD3D3KPt4D3hvzCJXyMUXpsbR19lLf2sXUhMgR161uPsPhxtPcsmTaJI1OqfPpnbFKjVFBWn/Pm9HTN1pWqXyBBnqlxqgo3Vl5U+7GBdlNZY1MjY88W62jlBU00Cs1RsmxESTFhI/a3Ky3z8GHFU1cUpSis0kpS2mgV2ocCtNiRz2j32N3zialaRtlNQ30So1DYbqzxHKkypv3y5oIEVhVoP1tlLU00Cs1DkXpcWcrb4azqayRedmJJEaHT+LIlDqfBnqlxqHQVXkzXMvi5g6dTUr5Dg30So1DYXp/z5uh8/QfVjThMHCptiVWPkADvVLjkOKqvKkY5ox+U1kjcZGhOpuU8gka6JUaJ2fPm/PP6I0xbCprYlVBCqE2/RFT1tNPoVLjVJQeS/kQlTflDe3UtXZqfl75DA30So1TUXocrZ29NLSdW3mjbQ+Ur9FAr9Q4FQwzCcn7ZY3kp8aQlaizSSnfoIFeqXEqGmJawc6ePj45orNJKd+igV6pcUqOCWdKdNg5tfRbj5ykS2eTUj5GA71S4yQiFKbHnXNGv6mskfDQEJblJVs4MqXO5VagF5GrROSQiFSIyH1DvC4i8qDr9RIRWeRaniMi74pIqYjsF5F7Pf0NKGWlokE9bzaVNbIkN4mocJ1NSvmOUQO9iNiAh4CrgTnALSIyZ9BqVwOFrq87gYddy3uBvzPGzAaWAXcPsa1Sfqsw7dPKm5rmM5Q3tHOJ3g2rfIw7UwkuASqMMZUAIvIccANwYMA6NwC/dU0puEVEEkUkwxhTC9QCGGPaRKQUyBq0rVJ+q78VQnl9O9XNHYCWVSrf407qJguoGvDc7lo2pnVEJBdYCGwd8yiV8lGFA6YV3FTWRHp8BDNd1ThK+Qp3Av1QU+MMbsI94joiEgu8BHzXGNM65EFE7hSR7SKyvbGx0Y1hKWW9lFhn5c2hujY+rGji4sJUnU1K+Rx3Ar0dyBnwPBuocXcdEQnDGeSfMca8PNxBjDGPGmOKjTHFqan6p6/yDyJCYVocG/fV0nKmR9M2yie5E+i3AYUikici4cDNwPpB66wHbndV3ywDWowxteI8tXkCKDXGPODRkSvlIwrTY2nr7EUELtbZpJQPGvVirDGmV0TuAV4HbMCTxpj9IrLO9fojwEbgGqAC6AC+4dp8JXAbsFdEdruW/dAYs9Gj34VSFuq/Q3ZeVgJTYnQ2KeV73Km6wRWYNw5a9siAxwa4e4jtPmTo/L1SAaPQ1fPmUk3bKB+ld8YqNUELp03hxgWZrC3OGX1lpSzg1hm9Ump4UeE2fnbzQquHodSw9IxeKaUCnAZ6pZQKcBrolVIqwGmgV0qpAKeBXimlApwGeqWUCnAa6JVSKsBpoFdKqQAn/VOg+RIRaQSOjXPzFKDJg8PxV/o+OOn74KTvg1Mgvw/TjTFD9uHwyUA/ESKy3RhTbPU4rKbvg5O+D076PjgF6/ugqRullApwGuiVUirABWKgf9TqAfgIfR+c9H1w0vfBKSjfh4DL0SullDpXIJ7RK6WUGkADvVJKBbiACfQicpWIHBKRChG5z+rxWElEjorIXhHZLSLbrR7PZBGRJ0WkQUT2DViWJCJviki5698pVo5xMgzzPvyLiFS7PhO7ReQaK8c4GUQkR0TeFZFSEdkvIve6lgfdZyIgAr2I2ICHgKuBOcAtIjLH2lFZ7jPGmAVBVjP8FHDVoGX3AW8bYwqBt13PA91TnP8+APyP6zOxwDUPdKDrBf7OGDMbWAbc7YoLQfeZCIhADywBKowxlcaYbuA54AaLx6QmmTFmE3By0OIbgN+4Hv8GuHEyx2SFYd6HoGOMqTXG7HQ9bgNKgSyC8DMRKIE+C6ga8NzuWhasDPCGiOwQkTutHozF0o0xteD8wQfSLB6Ple4RkRJXaifg0xUDiUgusBDYShB+JgIl0MsQy4K5bnSlMWYRzlTW3SJyidUDUpZ7GMgHFgC1wH9bOppJJCKxwEvAd40xrVaPxwqBEujtQM6A59lAjUVjsZwxpsb1bwPwR5yprWBVLyIZAK5/GywejyWMMfXGmD5jjAN4jCD5TIhIGM4g/4wx5mXX4qD7TARKoN8GFIpInoiEAzcD6y0ekyVEJEZE4vofA58F9o28VUBbD3zN9fhrwJ8tHItl+gOby+cJgs+EiAjwBFBqjHlgwEtB95kImDtjXeViPwNswJPGmH+3dkTWEJEZOM/iAUKB3wfLeyEizwKrcbairQd+DPwJeB6YBhwH1hpjAvpC5TDvw2qcaRsDHAW+1Z+nDlQisgr4ANgLOFyLf4gzTx9cn4lACfRKKaWGFiipG6WUUsPQQK+UUgFOA71SSgU4DfRKKRXgNNArpVSA00CvlFIBTgO98ksi8l0Rifbi/nMHtvkdYZ1b3dzXrQOeF4vIg54Yp1Lu0ECv/NV3Aa8FejflAqMG+sHrGWO2G2O+46UxKXUeDfTK57naOrwqIntEZJ+I/BjIBN4VkXdd69zimmxln4j854Bt20Xkv0Vkp4i8LSKpIxxnsesYm4G7ByzPFZEPXPvYKSIrXC/9BLjYNZHH34qITUR+KiLbXF0ivzXMeqtFZINr3/8iIr8RkTdcE8Z8QUT+y/W9vObq1dI/tvddHUlfH9TSQKmRGWP0S798+gv4IvDYgOcJOG/jT3E9z8R5K3sqzrYP7wA3ul4zwFdcj/8Z+MUIxykBLnU9/imwz/U4Goh0PS4EtrserwY2DNj+TuBHrscRwHYgb4j1zj4H/gX4EAgD5gMdwNWu1/6Is1d6GPAxkOpa/mWcbT4s/7/RL//4Cp3QbwmlJsde4H7XmfoGY8wHzn5VZ10EvGeMaQQQkWeAS3D2uXEAf3Ct9zTwMkMQkQQg0RjzvmvR73C2eQZnoP2FiCwA+oCiYcb5WWCeiHzJ9TwB5y+G7lG+v78YY3pEZC/OXk2vDfi+c4GZwIXAm67v24az1bBSbtFAr3yeMaZMRBYD1wD/ISJvDFplqPkIht3dMMtlhNf+FmdzsPk4052dI+zjb4wxr5+zUGT1KGPqAjDGOESkxxjTPw4Hzp9RAfYbY5aPsh+lhqQ5euXzRCQT6DDGPA3cDywC2oA41ypbgUtFJMU1f/AtQP+ZeQjQf4Z9K840yXmMMc1Ai6vjIcBXBrycANQaZy/323CeUTNoDACvA3cNyKsXuVpFD15vrA4BqSKy3LXfMBG5YAL7U0FGz+iVP5gL/FREHEAPcBewHPiLiNQaYz4jIj8A3sV59rvRGNPfY/w0cIGI7ABacOa3h/MN4EkR6cAZtPv9EnhJRNa6jnHatbwE6BWRPTgn5P45zlTLTlcv9EacOfbB6+0ayzdvjOl2pYMedKWYQnG25N4/lv2o4KVtilVAE5F2Y0ys1eNQykqaulFKqQCnZ/Qq6IjIQ8DKQYt/boz5tRXjUcrbNNArpVSA09SNUkoFOA30SikV4DTQK6VUgNNAr5RSAe7/A5NCaSEBt6kLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.groupby(\n",
    "    df.stop_datetime.dt.hour\n",
    ").arrest_made.mean().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10.0    30590\n",
       "9.0     29751\n",
       "8.0     27865\n",
       "15.0    24598\n",
       "0.0     22481\n",
       "Name: stop_datetime, dtype: int64"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.stop_datetime.dt.hour.value_counts().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0    22481\n",
       "1.0     8544\n",
       "2.0     5914\n",
       "3.0     3591\n",
       "4.0     3214\n",
       "Name: stop_datetime, dtype: int64"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.stop_datetime.dt.hour.value_counts().sort_index().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.stop_datetime.dt.hour.value_counts().sort_index().plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Don't forget to follow us on [YouTube](http://youtube.com/tirendazacademy) | [Medium](http://tirendazacademy.medium.com) | [Twitter](http://twitter.com/tirendazacademy) | [GitHub](http://github.com/tirendazacademy) | [Linkedin](https://www.linkedin.com/in/tirendaz-academy) | [Kaggle](https://www.kaggle.com/tirendazacademy) 😎"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
